菜单(Menu)
Menu 提供了一个菜单控件,可用于菜单栏、上下文菜单以及其他弹出菜单。上下文菜单通常通过某些特殊的键盘按键或右键单击调用,可以通过 exec() 方法执行。
可以通过 addSeparator() 插入分隔符,通过 addMenu() 添加子菜单,其他所有项目都被视为菜单项。
菜单项(MenuItem)
MenuItem 类表示菜单中的单个项目,通常用于显示文本和图标。一个菜单由一系列菜单项组成。可以通过 add() 和 insert() 方法添加菜单项。
可以使用 clear() 清空菜单,或者使用 remove() 删除单个菜单项。
事件
点击事件(click)
当用户点击菜单项时,会触发 click 事件。
菜单项执行事件(itemExecuted)
当菜单中的任意菜单项被点击时,会触发 itemExecuted 事件。
// 监听菜单项的点击事件
const item = menu.addItem('Mesh');
item.bind('clicked', (event: ClickEvent): void => {
//菜单项被点击。
});
// // 监听菜单的菜单项执行事件
menu.bind('itemExecuted', (event: ItemExecuteEvent): void => {
event.item as MenuItem; // 被点击的菜单项。
});
示例代码
创建菜单
以下代码将创建一个菜单:
const menu = new Menu();
const scalarMenu = menu.addMenu('Scalar');
scalarMenu.addItem('Velocity');
scalarMenu.addItem('Temperature');
menu.addSeparator();
menu.addItem('Shaded');
menu.addItem('Outline');
const item = menu.addItem('Transparent');
item.checked = true;
menu.addItem('Wireframe');
menu.addItem('Mesh');
menu.addSeparator();
menu.addItem('Hide');
menu.exec(new Point(100, 100));

为菜单项添加图标
可以为菜单项添加图标,代码如下:
const menu = new Menu();
menu.width = 170;
menu.addItem('Open (O)', 'open_32.png');
menu.addItem('Download');
menu.addSeparator();
const cutItem = menu.addItem('Cut (T)');
cutItem.shortcutKey = 'Ctrl+X';
const copyItem = menu.addItem('Copy (C)');
copyItem.shortcutKey = 'Ctrl+V';
copyItem.enabled = false;
menu.addItem('Rename (M)');
menu.addItem('Delete (D)');
menu.exec(new Point(100, 100));
